package pe.org.manuela.web.despachadores

static def obtenerInsumos(conn) {
	def sql = """
	select id_insumo, descripcion, estado
	from insumo
	where estado='A'
	"""
	
	def data = conn.rows(sql)
	data = data.collect {
		[
			id: it.id_insumo,
			descripcion: it.descripcion,
			estado: it.estado
		]
	}
	return data
}

private static def obtnerSiguienteId(conn) {
	def siguiente = 1
	def sql = """
	select max(id_insumo) as nro
	from insumo
	"""
	conn.eachRow(sql) {
		siguiente = it.nro + 1 
	}
	return siguiente
}

static def ingresarInsumo(conn, params) {
	def siguiente = obtnerSiguienteId(conn)
	params.id = siguiente
	def sql = """
	insert into insumo(id_insumo, descripcion, estado)
	values(:id, :descripcion, :estado)
	"""
	conn.execute(sql, params)
}

static def modificarInsumo(conn, params) {
	def sql = """
	update insumo
	set descripcion = :descripcion,
	estado = :estado
	where id_insumo = :id
	"""
	conn.execute(sql, params)
}

static def obtenerInsumosPorTalla(conn, params) {
	def sql = """
	select i.id_insumo, i.descripcion 
	from insumo i
	inner join producto_insumo pi
	on i.estado = 'A'
	and i.id_insumo = pi.id_insumo
	inner join producto p
	on p.estado = 'A'
	and pi.id_producto = p.id_producto
	inner join tipoproducto tp
	on tp.id_tipoproducto = p.id_tipoproducto
	inner join talla t
	on t.id_talla = p.id_talla
	where tp.id_tipoproducto = :tipoProducto
	and p.descripcion = :producto
	and t.id_talla = :talla	
	"""
	
	def data = conn.rows(sql, params)
	data = data.collect {
		[
			id: it.id_insumo,
			descripcion: it.descripcion
		]
	}
	
	return data
}
